﻿using Shop.Api.Models;
using Shop.Data.Business;
using Shop.Data.Entities;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;

namespace Shop.Api.Controllers
{
    public class ProductoController : ApiController
    {
        // GET api/<controller>
        public IEnumerable<ProductoModel> Get()
        {
            //return new string[] { "value1", "value2" };
            return ProductoBusiness.GetListByFilter("").Select(

                t => new ProductoModel
                {
                    Id = t.Id,
                    nombre = t.nombre,
                    descripcion = t.descripcion,
                    stock = t.stock,
                }); 
        }

        // GET api/<controller>/5
        public ProductoModel Get(Guid id)
        {
            //return "asdasdsadsa";  
            Producto p = ProductoBusiness.GetById(id);
            return new ProductoModel
            {
                Id = p.Id,
                nombre = p.nombre,
                descripcion = p.descripcion,
                stock = p.stock,
            };
        }

        // POST api/<controller>
        public ProductoModel Post([FromBody]ProductoModel model)
        {
            //return "Mi post";
            Producto p = ProductoBusiness.Create(new Producto
         {
             
             nombre = model.nombre,
             descripcion = model.descripcion,
             stock = model.stock,
         });
            return new ProductoModel
            {

                Id = p.Id,
                nombre = p.nombre,
                descripcion = p.descripcion,
                stock = p.stock,

            };
        }
        
        // PUT api/<controller>/5
        public ProductoModel Put(Guid id, [FromBody]ProductoModel model)
        {
            //return "Mi put";
            Producto p = ProductoBusiness.Update(new Producto
            {
                Id=id,
                nombre = model.nombre,
                descripcion = model.descripcion,
                stock = model.stock,
            });
            return new ProductoModel
            {
                
                Id = p.Id,
                nombre = p.nombre,
                descripcion = p.descripcion,
                stock = p.stock,

            };
        }

        // DELETE api/<controller>/5
        public void Delete(Guid id)
        {
            ProductoBusiness.Delete(id);
        }
    }
}